package io.xccit.train.member.service;


import io.xccit.train.common.page.PageDTO;
import io.xccit.train.common.page.PageVO;
import io.xccit.train.model.member.domain.dto.PassengerDTO;
import io.xccit.train.model.member.domain.dto.PassengerUpdateDTO;
import io.xccit.train.model.member.domain.vo.PassengerVO;

/**
 * @author CH_ywx
 * @version 1.0
 * @create 2024/11/12
 * <p>乘客业务层</p>
 */
public interface PassengerService {

    /**
     * 新增乘客
     * @param passengerDTO 新增乘客参数
     */
    int insert(PassengerDTO passengerDTO);

    /**
     * 根据id查询乘客
     * @param id 乘客ID
     * @return 乘客信息
     */
    PassengerVO selectById(Long id);

    /**
     * 更新乘客
     * @param passengerUpdateDTO 更新乘客参数
     */
    int update(PassengerUpdateDTO passengerUpdateDTO);

    /**
     * 批量删除乘客(与删除公用)
     * @param ids
     */
    int deleteAndBatch(Long[] ids);

    /**
     * 查询乘客总数
     * @return
     */
    Long count();

    /**
     * 查询乘客列表
     * @return
     */
    PageVO<PassengerVO> list(PageDTO pageDTO);
}
